﻿/*
* AuthorManage.js
* zhouh@zd_20160324
*/
$(function () {
    //announcement
    var divUser = new jSharp.popUpDiv('divUser');
    var divModule = new jSharp.popUpDiv('divModule');
    var divMsg = new jSharp.popUpDiv('divMsg');
    var tbUser = $('#tbLevelMember');
    var tbModule = $('#lbLevelModule');
    //function
    function loadUser(level) //加载用户
    {
        divUser.Show();
        tbUser.empty();
        $.get('../Common/AjaxHandler.aspx', {
            handler: 'levelUser',
            level: level
        }, function (data) {
            var o = JSON.parse(data);
            if (o != undefined && o.length > 0) {
                tbUser.append('<tr><th>用户组</th><th>用户名称</th><th>创建时间</th></tr>');
                for (var i = 0; i < o.length; i++) {
                    var account = o[i]['account'];
                    var level = o[i]['level_class'];
                    var time = o[i]['create_time'];
                    tbUser.append('<tr><td>' + level + '</td><td>' + account + '</td><td>' + time + '</td></tr>');
                }
            }
            else {
                tbUser.html('<tr><td>没有数据</td></tr>')
            }
        })
    }
    function loadModule(level) //加载模块（显示）
    {
        divModule.Show();
        tbModule.empty();
        $.get('../Common/AjaxHandler.aspx', {
            handler: 'levelModule',
            level: level
        }, function (data) {
            var o = JSON.parse(data);
            if (o != undefined && o.length > 0) {
                $('#divName').hide();
                $('#btnModuleConfirm').hide();
                tbModule.append('<tr><th>模块名称</th><th>模块地址</th></tr>');
                for (var i = 0; i < o.length; i++) {
                    var name = o[i]['module_name'];
                    var url = o[i]['module_url'];
                    tbModule.append('<tr><td>' + name + '</td><td>' + url + '</td></tr>');
                }
            }
        })
    }
    function loadModuleAdd() //加载模块（新增）
    {
        divModule.Show();
        tbModule.empty();
        $.get('../Common/AjaxHandler.aspx', {
            handler: 'levelModule'
        }, function (data) {
            var o = JSON.parse(data);
            if (o != undefined && o.length > 0) {
                $('#divName').show();
                $('#lblClassName').hide();
                $('#txtClassName').show();
                tbModule.append('<tr><th>模块名称</th><th>模块地址</th><th>是否开放</th></tr>');
                for (var i = 0; i < o.length; i++) {
                    var level = o[i]['module_level'];
                    var name = o[i]['module_name'];
                    var url = o[i]['module_url'];
                    var moduleid = o[i]['moduleid'];
                    if (level == '1') {
                        tbModule.append('<tr style="background-color: #eee;"><td>' + name + '</td><td>' + url + '</td><td align="center"><input type="checkbox" level="1" mid="' + moduleid + '"/></td></tr>');
                        for (var ii = 0; ii < o.length; ii++) {
                            var _name = o[ii]['module_name'];
                            var _url = o[ii]['module_url'];
                            var _fatherid = o[ii]['father_id'];
                            var _moduleid = o[ii]['moduleid'];
                            if (_fatherid == moduleid) {
                                tbModule.append('<tr><td>' + _name + '</td><td>' + _url + '</td><td align="center"><input type="checkbox" level="2" mid="' + _moduleid + '" fid="' + _fatherid + '"/></td></tr>');
                            }
                        }
                    }
                }
                initCkb();
                $('#btnModuleConfirm').show();
            }
        })
    }
    function loadModuleEdit(level) { //加载模块列表(编辑)
        divModule.Show();
        tbModule.empty();
        $.get('../Common/AjaxHandler.aspx', {
            handler: 'levelModuleEdit',
            level: level
        }, function (data) {
            var o = JSON.parse(data);
            if (o != undefined && o.length > 0) {
                $('#divName').show();
                $('#lblClassName').show();
                $('#txtClassName').hide();
                tbModule.append('<tr><th>模块名称</th><th>模块地址</th><th>是否开放</th></tr>');
                for (var i = 0; i < o.length; i++) {
                    var level = o[i]['module_level'];
                    var name = o[i]['module_name'];
                    var url = o[i]['module_url'];
                    var moduleid = o[i]['moduleid'];
                    var flag = o[i]['flag'];
                    $('#lblClassName').html(o[0]['level_class']);
                    if (level == '1') {
                        if (flag == '0') {
                            tbModule.append('<tr style="background-color: #eee;"><td>' + name + '</td><td>' + url + '</td><td align="center"><input type="checkbox" level="1" mid="' + moduleid + '"/></td></tr>');
                        }
                        else {
                            tbModule.append('<tr style="background-color: #eee;"><td>' + name + '</td><td>' + url + '</td><td align="center"><input type="checkbox" checked="checked" level="1" mid="' + moduleid + '"/></td></tr>');
                        }
                        for (var ii = 0; ii < o.length; ii++) {
                            var _name = o[ii]['module_name'];
                            var _url = o[ii]['module_url'];
                            var _fatherid = o[ii]['father_id'];
                            var _moduleid = o[ii]['moduleid'];
                            var _flag = o[ii]['flag'];
                            if (_fatherid == moduleid) {
                                if (_flag == '0') {
                                    tbModule.append('<tr><td>' + _name + '</td><td>' + _url + '</td><td align="center"><input type="checkbox" level="2" mid="' + _moduleid + '" fid="' + _fatherid + '"/></td></tr>');
                                }
                                else {
                                    tbModule.append('<tr><td>' + _name + '</td><td>' + _url + '</td><td align="center"><input type="checkbox" level="2" checked="checked" mid="' + _moduleid + '" fid="' + _fatherid + '"/></td></tr>');
                                }
                            }
                        }
                    }
                    initCkb();
                    $('#btnModuleConfirm').attr('edit', 'edit').show();
                }
            }
            else {
                tbModule.html('<tr><td>没有数据</td></tr>')
            }
        })
    }
    function initCkb() { //初始化checkbox的级联关系
        $('input[type="checkbox"]').each(function (index, elt) {
            if ($(elt).attr('level') == '1') {
                var mid = $(elt).attr('mid');
                $(elt).change(function () {
                    $('input[type="checkbox"]').each(function (index, _elt) {
                        if ($(_elt).attr('fid') == mid) {
                            $(_elt).prop('checked', $(elt).prop('checked'));
                        }
                    })
                })
            }
            if ($(elt).attr('level') == '2') {
                var fid = $(elt).attr('fid');
                $(elt).change(function () {
                    var fckb = undefined;
                    var flag = false;
                    $('input[type="checkbox"]').each(function (index, _elt) {
                        if ($(_elt).attr('mid') == fid) {
                            fckb = $(_elt);
                        }
                        if ($(_elt).attr('fid') == fid) {
                            if ($(_elt).prop('checked')) {
                                flag = true;
                            }
                        }
                    })
                    fckb.prop('checked', flag);
                })
            }
        })
    }
    function save(edit) {
        var list = new Array();
        if (edit) {
            var name = $('#lblClassName').html();
            $('input[type="checkbox"]').each(function (index, elt) {
                if ($(elt).prop('checked')) {
                    var mid = $(elt).attr('mid');
                    list.push(mid);
                }
            })
            if (list.length == 0) {
                tips('请选择模块');
                return;
            }
            $.post('../Common/AjaxHandler.aspx', { handler: 'editGroup', name: name, mid: JSON.stringify(list) }, function (data) {
                if (data == "OK") {
                    tips('编辑成功！');
                    location.reload();
                }
            })
        }
        else {
            var name = $('#txtClassName').val();
            if (name == "") {
                tips('用户组名称不能为空');
                return;
            }
            $.get('../Common/AjaxHandler.aspx', { handler: 'isNameExist', name: name }, function (data) {
                if (data == 'true') {
                    tips('用户组已经存在');
                    return;
                }
                if (data == 'false') {
                    $('input[type="checkbox"]').each(function (index, elt) {
                        if ($(elt).prop('checked')) {
                            var mid = $(elt).attr('mid');
                            list.push(mid);
                        }
                    })
                    if (list.length == 0) {
                        tips('请选择模块');
                        return;
                    }
                    $.post('../Common/AjaxHandler.aspx', { handler: 'addGroup', name: name, mid: JSON.stringify(list) }, function (data) {
                        if (data == "OK") {
                            tips('新增成功！');
                            location.reload();
                        }
                    })
                }
                else console.log(data);
            })


        }
    }



    function addUserGroup() { //新增用户组 
        loadModuleAdd();
    }
    function tips(s) {//提示
        divMsg.Show();
        $('#msgContent').html(s);
    }
    //handler

    $('#hideUser').click(function () {
        divUser.Close()
    });
    $('#btnAddUser').click(function () {
        addUserGroup();
    })
    $('#btnModuleConfirm').click(function () {
        save($('#btnModuleConfirm').attr('edit'));
    })
    $('.unum').each(function (index, elt) {
        $(elt).click(function () {
            var level = $(elt).attr('args');
            loadUser(level);
        })
    });
    $('.mnum').each(function (index, elt) {
        $(elt).click(function () {
            var level = $(elt).attr('args');
            loadModule(level);
        })
    })
    $('.levelEdit').each(function (index, elt) {
        $(elt).click(function () {
            var level = $(elt).attr('args');
            loadModuleEdit(level);
        })
    })
    $('#hideModule').click(function () {
        divModule.Close()
    });
    $('#hideAdd').click(function () {
        divAdd.Close();
    })
    $('#hideMsg').click(function () {
        divMsg.Close();
    })
    //init
} ())
